package org.birrap.ejb;

import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.birrap.entities.TapasCervezaT;

@Stateless
public class TapasCervezaTBean implements TapasCervezaTBeanLocal {

    @PersistenceContext(unitName = "BirrApp-ejbPU")
    private EntityManager em;
    
    @Override
    public List<TapasCervezaT> findAll() {
        Query query = em.createNamedQuery("TapasCervezaT.findAll");
        
        return (List<TapasCervezaT>) query.getResultList();
    
    }

    @Override
    public TapasCervezaT findByIdTapa(Integer id) {
        TapasCervezaT res = null;
        Query query = em.createNamedQuery("TapasCervezaT.findByIdTapa").
                setParameter("idTapa", id);
        
        try {
            res = (TapasCervezaT) query.getSingleResult();
        } catch(NoResultException e) {
            System.out.println("No existe la tapa");
        }
        
        return res; 
    
    }

    @Override
    public List<TapasCervezaT> findByDescripcion(String descripcion) {
        
        List<TapasCervezaT> res = null;
        Query query = em.createNamedQuery("TapasCervezaT.findByDescripcion").
                setParameter("descripcion", descripcion);
        
        try {
            res = (List<TapasCervezaT>) query.getResultList();
        } catch(NoResultException e) {
            System.out.println("No existe la descripcion");
        }
        
        return res;
    
    }

    @Override
    public List<TapasCervezaT> findByNombre(String nombre) {
        List<TapasCervezaT> res = null;
        Query query = em.createNamedQuery("TapasCervezaT.findByNombre").
                setParameter("nombre", nombre);
        
        try {
            res = (List<TapasCervezaT>) query.getResultList();
        } catch(NoResultException e) {
            System.out.println("No existe el nombre");
        }
        
        return res;
    
    }

    @Override
    public TapasCervezaT insert(TapasCervezaT tapa) {
        return update(tapa);
    
    }

    @Override
    public TapasCervezaT update(TapasCervezaT tapa) {
        return em.merge(tapa);
    
    }

    @Override
    public boolean remove(Integer id) {
        boolean correcto = false;
        int resultado = 0;
        
        Query query = em.createNamedQuery("TapasCervezaT.removeById")
                         .setParameter("idTapa", id);
        
        resultado = query.executeUpdate();
        
        if (resultado > 0)
        {
            correcto = true;
        }
        
        return correcto;
    }

  
}
